package com.moodincode.taskcenter.service;

import com.moodincode.taskcenter.bean.TaskInfo;

import java.util.List;

/**
 * @author moodincode
 */
public interface IQuartzService {
    /**
     * 获取所有任务
     * @return
     */
    List<TaskInfo> findAll();
    /**
     * 获取单个任务
     * @param id
     * @return
     */
    TaskInfo getTaskById(String id);

    /**
     * 暂停一个任务
     * @param id
     * @return
     */
    TaskInfo pauseTask(String id);

    /**
     * 创建一个任务
     * @param task
     * @return
     * @throws Exception
     */
    TaskInfo createTask(TaskInfo task) throws  Exception;

    /**
     * 修改一个任务
     * @param id
     * @param cron
     * @return
     */
    TaskInfo modifyTask(String id, String cron,String script);

    /**
     * 删除单个任务
     * @param id
     * @return
     */
    TaskInfo removeTask(String id);

    /**
     * 重启一个任务
     * @param id
     * @return
     */
    TaskInfo restartTask(String id);

    /**
     * 关闭一个任务
     * @param id
     * @return
     */
    TaskInfo shutdownTask(String id);
    /**
     * 触发一次定时任务的执行
     * @param id
     * @return
     */
    TaskInfo triggerTask(String id);

    /**
     * 启动所有任务
     */
    void startAllTask();

    /**
     * 关闭所有任务
     */
    void shutdownAllTask();

    /**
     * 重启所有任务
     */
    void resumeAllTask();

    /**
     * 暂停所有任务
     */
    void pauseAllTask();

}
